# !/usr/bin/env python
# -*- coding: utf-8 -*-
import logging

from guitesting.common.DriverManager.webdriver_controller import DriverTool
import json


class CookieService:
    def __init__(self):
        self.driver = DriverTool.get_driver()
        # print("我进入cookie初始化了哦")

    def get_browser_cookie(self, cookie_file: str):
        """
        初始化 CookieService 实例，加载保存在文件中的 Cookie 数据到浏览器中
        :param driver: webdriver 对象
        :param cookie_file: 保存 Cookie 的文件路径
        """

    def add_cookie_to_webdriver(self, cookie_file="./test_data/saved_cookie.json"):
        """
        获取保存在文件里的cookie，将其添加到浏览器中
        :param file:
        :return:
        """
        with open(cookie_file, 'r') as file:
            saved_cookie = file.read()
            # print(saved_cookie)
            # cookie_list = []
            for cookie in json.loads(saved_cookie):
                # print("看取出来的是什么")
                # print(cookie)
                # cookie_list.append({
                #     'name': cookie['name'],
                #     'value': cookie['value']
                # })
                pass
            # print("看看获取是否正确")
            # print(cookie_list)
            logging.info(f"获取保存在文件里的cookie，将其添加到浏览器中:{cookie}")
            self.driver.add_cookie(cookie)
            # cookie_dict = {"name": , "value":  }
            # for cookie in cookie_list:
            #     print("看看上次本地cookie到浏览器中的cookie是否正常")
            #     print(cookie)
            #     self.driver.add_cookie(cookie)

    def save_cookie(self, save_file="./test_data/saved_cookie.json"):
        """
        保存当前浏览器中的 Cookie 数据到文件中
        :param save_file: 保存 Cookie 的文件路径
        """
        with open(save_file, 'w') as file:
            file.write(json.dumps(self.driver.get_cookies()))

    def delete_all_cookie(self):
        """
        删除浏览器中存储的所有 Cookie 数据
        """
        self.driver.delete_all_cookies()

    def update_cookie(self, name: str, value: str):
        """
        更新浏览器中存储的 Cookie 数据
        :param name: cookie name
        :param value: cookie value
        :param kwargs: cookie 其他属性**kwargs
        """
        cookie_dict = {
            'name': name,
            'value': value
        }
        self.driver.add_cookie(cookie_dict)
        print(f"更新了cookie：{cookie_dict}")


if __name__ == '__main__':
    pass
